package game.sprite;

import java.awt.Graphics;
/**
 * Any Sprite that can take damage should implement HitPoints.
 * 
 * @author rwb10
 *
 */
@Deprecated
public interface HitPoints {
    /**
     * 
     * @return The current health points.
     */
    int getHealth();
    /**
     * Sets the current health to newHealth.
     * @param newHealth What to set the new health to.
     */
    void setHealth(int newHealth);
    /**
     * Gets the current maximum health value.
     * @return maximum health value.
     */
    int getMaxHealth();
    /**
     * Sets the maximum health value.
     * @param newMaxHealth New maximum health.
     */
    void setMaxHealth(int newMaxHealth);
    /**
     * Sets current health to maximum health.
     */
    void fullHeal();
    /**
     * Whether or not they can take damage. 
     * @return true if immune.
     */
    boolean isImmune();
    /**
     * Set whether or not they take damage.
     * @param immunity true if immune.
     */
    void setImmune(boolean immunity);
    /**
     * Heal a certain amount. Cap at max.
     * @param healthToAdd Max amount to heal.
     */
    void heal(int healthToAdd);
    /**
     * Heal a certain amount. No cap at max health.
     * @param healthToAdd Amount to heal.
     */
    void addHealth(int healthToAdd);
    /**
     * Damage a certain amount. No stopper at 0 health.
     * @param damage Amount of damage to do.
     */
    void removeHealth(int damage);
    /**
     * Sets health to 0.
     */
    void kill();
    /**
     * Used to draw the death animation.
     * @param pen Graphics with which to draw.
     */
    void die(Graphics pen);
}
